The present invention relates to a method and apparatus for storing audio messages. More particularly, it relates to digital telephone answering devices that encode messages according to the likelihood that each message will be played.
Digital telephone answering devices (hereinafter, xe2x80x9cDTADxe2x80x9ds) have finite memory circuits available for storing incoming audio messages. However, because there is no limit on the number of calls that can be transmitted to a DTAD, it is advantageous to allocate memory space wisely. To this end, a number of memory management strategies are known.
Conventionally, memory space is allocated to messages in the order in which messages are received at the DTAD. In this scheme, the amount of memory allocated to each message may be a fixed amount, an amount sufficient to store the message, or an amount sufficient to store the message subject to a ceiling limit. Typically, when the memory space has been completely allocated, no new messages can be stored and a blocking greeting informs new callers of this situation.
Although only a message recipient can determine the importance of a specific message, a more recent message is more likely to be important than is a stale one. Therefore, this conventional arrangement has a significant inherent disadvantage: the most recent messages are the most likely to be lost.
Another strategy is to use system prompts to encourage a user to wisely manage memory space. System prompts might encourage a user to listen to new messages or to delete messages he has already listened to. The disadvantage with this strategy is that it depends on the user. If a user is lax or unavailable for an extended period, then the memory space will not be managed wisely.
What is needed is an arrangement wherein a DTAD automatically manages its own memory space such that messages with a high likelihood of future play take precedence over messages with a low likelihood of future play. The present invention is directed to such an arrangement.
In accordance with one aspect of the invention, there is provided a method of storing a voice message, the method including the steps of storing a coded representation of the voice message in a block of memory associated with the voice message and sized to correspond to the size of the coded representation, retrieving the coded representation to play the voice message to a user; compressing the coded representation to produce a compressed representation of the voice message, the compressed representation having a lesser size than the coded representation, after the coded representation has been retrieved, and storing the compressed representation of the message in the block of memory in place of the coded representation.
Preferably, the method includes resizing the block of memory to approximately the size of the compressed representation.
It is desirable that the method includes the step of compressing the coded representation after a predetermined period of time after the coded representation has been retrieved. To this end, the method preferably includes the step of associating a played attribute with the voice message, the played attribute indicating whether or not the coded representation has been retrieved.
Desirably, the method includes annunciating a representation of the played attribute to the user.
Preferably the method includes the step of associating a compressed attribute with the voice message, the compressed attribute indicating whether or not the message is represented by the compressed representation. It is also desirable that the method includes the step of associating a location attribute with the voice message, the location attribute identifying the block of memory at which the coded representation or the compressed representation is stored. It is further desirable that the method includes the step of associating with the voice message a time attribute identifying a time of storing the coded representation.
It is advantageous that the method include storing a plurality of coded representations of respective voice messages in respective blocks of memory sized to correspond to respective the coded representations. Preferably, the method also includes resizing the respective blocks of memory associated with played voice messages, to approximately the sizes of respective compressed representations. It is desirable that the method include storing the plurality of coded representations in respective blocks of memory in a predefined order or even in respective contiguous blocks of memory.
Preferably, the method includes associating with each of the respective voice messages, location attributes representing the beginning point and end point of each of the respective blocks of memory. It is therefore desirable that the method provide for adjusting at least one of the location attributes after compressing an associated coded representation, to define a block of memory of reduced size.
It is advantageous that the method provide for adjusting the location attributes of blocks of memory subsequent to the block of memory of reduced size to maintain the blocks of memory contiguous.
It is also preferable that the method provide for associating with each of the respective messages a time attribute representing a time at which the coded representation is stored, a compressed attribute representing whether or not the voice message is represented by a compressed representation and a played attribute representing whether or not the coded representation has been retrieved, the played attribute being set active when the coded representation is retrieved.
Desirably, the method provides for compressing the coded representation when the played attribute is active and setting the compressed attribute active in response to compressing the coded representation.
Preferably, the method provides for setting the time attribute when the coded representation is stored. It is also desirable that the method provide for compressing when the time attribute is greater than a predefined time value, and setting the compressed attribute active in response to compressing the coded representation. It is also desirable that the method include the step of compressing when the end point of the block of memory having the greatest end point value has a value greater than a predefined end point value.
It is desirable that the method include the step of receiving the voice message from a telephone line.
In accordance with another aspect of the invention, there is provided an apparatus for storing a voice message, the apparatus including memory operable to be divided into various sized blocks, and a processor for associating a block of memory with the voice message and for storing a coded representation of the voice message in the block of memory and for sizing the block of memory to correspond to the size of the coded representation, for retrieving the coded representation to play the voice message to a user for compressing the coded representation after the coded representation has been retrieved to produce a compressed representation of the voice message, having lesser size than the coded representation, and for storing the compressed representation of the message in the block of memory in place of the coded representation.
Preferably, the processor is programmed to resize the block of memory to approximately the size of the compressed representation.
It is desirable that the processor is programmed to determine the time elapsed since the coded representation was retrieved and for actuating the compressing means after a predetermined period of time after the coded representation has been retrieved. It is also desirable that the processor is programmed to associate a played attribute with the voice message, the played attribute indicating whether or not the coded representation has been retrieved.
Preferably, the apparatus includes an annunciator for annunciating a representation of the played attribute to the user.
Desirably, the processor is programmed to associate a compressed attribute with the voice message, the compressed attribute indicating whether or not the message is represented by the compressed representation.
It is advantageous that the processor be programmed to associate a location attribute with the voice message, the location attribute identifying the block of memory at which the coded representation or the compressed representation is stored. Similarly, it is desirable that the processor is programmed to associate with the voice message a time attribute identifying a time of storing the coded representation.
Preferably, the processor is programmed to store a plurality of coded representations of respective voice messages in respective blocks of memory and to size the blocks of memory to correspond to respective the coded representations. It is similarly preferable that the processor is programmed to resize the respective blocks of memory associated with played voice messages, to approximately the respective sizes of respective compressed representations.
Desirably, the processor is programmed to store the plurality of coded representations in respective blocks of memory in a predefined order or in respective contiguous blocks of memory.
Desirably, the processor is programmed to store a location attribute associator for associating with each of the respective voice messages, location attributes representing the beginning point and end point of each of the respective blocks of memory. Preferably, the processor is programmed to adjust at least one of the location attributes after compressing an associated coded representation, to define a block of memory of reduced size. It is also advantageous that the processor be programmed to adjust the location attributes of blocks of memory subsequent to the block of memory of reduced size to maintain the blocks of memory contiguous.
Preferably, the processor is programmed to associate with each of the respective messages a time attribute representing a time at which the coded representation is stored, a compressed attribute representing whether or not the voice message is represented by a compressed representation and a played attribute representing whether or not the coded representation has been retrieved. It is desirable that the processor be programmed to set the played attribute active when the coded representation is retrieved.
Desirably, the processor is programmed to compress the coded representation when the played attribute is active and to set the compressed attribute active after compressing the coded representation.
It is also preferable that the processor be programmed to set the time attribute when the coded representation is stored and to adjust the time attribute to reflect time elapsed since the coded response was stored. It is desirable that the processor be programmed to compress the coded representation when the time attribute is greater than a predefined time value, and to set the compressed attribute active after compressing.
Preferably, the processor is programmed to compress the coded representation when the end point of the block of memory having the greatest end point value has a value greater than a predefined end point value.
It is desirable that, the apparatus includes a receiver for receiving the voice message from a telephone line and for providing the voice message to the processor.
In accordance with yet another aspect of the invention, there is provided an apparatus for storing a voice message, the apparatus including memory operable to be divided into variable sized blocks, provisions for associating a block of memory with the voice message and for storing a coded representation of the voice message in the block of memory and for sizing the block of memory to correspond to the size of the coded representation, provisions for retrieving the coded representation to play the voice message to a user, provisions for compressing the coded representation after the coded representation has been retrieved to produce a compressed representation of the voice message, the compressed representation having lesser size than the coded representation, and provisions for storing the compressed representation of the message in the block of memory in place of the coded representation.
In accordance with still another aspect of the invention, there is provided a processor readable storage medium on which is stored a plurality of processor readable codes for directing a processor to store a voice message by storing a coded representation of the voice message in a block of memory associated with the voice message and sized to correspond to the size of the coded representation, retrieving the coded representation to play the voice message to a user, compressing the coded representation to produce a compressed representation of the voice message, the compressed representation having a lesser size than the coded representation, after the coded representation has been retrieved and storing the compressed representation of the message in the block of memory in place of the coded representation.
Effectively, the invention provides a way of storing a coded representation of a voice message in a block of memory associated with the voice message and sized to correspond to the size of the coded representation. The invention provides for retrieving the coded representation to play the voice message to a user and for compressing the coded representation after it has been retrieved so as to produce a compressed representation having a lesser size than the coded representation. The invention then provides for storing the compressed representation of the message in a smaller block of memory in place of the coded representation.